package co.com.smart.persistence.entity.dto;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * The persistent class for the smart_ciudad database table.
 * 
 */
@Entity
@Table(name="smart_matricula")
@NamedQuery(name="SmartMatricula.findAll", query="SELECT s FROM SmartMatricula s")
public class SmartMatricula implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(name="sm_scmatricula")
	private BigDecimal smscmatricula;	

	@Column(name="sm_nmmatricula")
	private String smnmmatricula;	
	
	@Column(name="sm_cofolio")
	private String smcofolio;	
	
	@Column(name="sm_dsannolectivo")
	private String smdsannolectivo;		
	
	@Column(name="sm_cousuario")
	private String smcousuario;				
	
	@Temporal(TemporalType.DATE)
	@Column(name="sm_fhingreso")
	private Date smfhingreso;

	@Temporal(TemporalType.DATE)
	@Column(name="sm_fhmodificacion")
	private Date smfhmodificacion;

	@Temporal(TemporalType.DATE)
	@Column(name="sm_fhretiro")
	private Date smfhretiro;	                              
	 
	//bi-directional many-to-one association to SmartDatosMaestro
	@ManyToOne(optional = false, fetch = FetchType.LAZY)
	@JoinColumn(name="sm_scestadoMatricula", referencedColumnName="sm_scdatmaestro")
	private SmartDatosMaestro smartdatosmaestroestadomatricula;	
	                
	//bi-directional many-to-one association to SmartPersona
	@ManyToOne(optional = false, fetch = FetchType.LAZY)
	@JoinColumn(name="sm_scmadre", referencedColumnName="sm_scpersona")
	private SmartPersona smartpersonamadre;		           
	
	//bi-directional many-to-one association to SmartPersona
	@ManyToOne(optional = false, fetch = FetchType.LAZY)
	@JoinColumn(name="sm_scpadre", referencedColumnName="sm_scpersona")
	private SmartPersona smartpersonapadre;	
	
	//bi-directional many-to-one association to SmartPersona
	@ManyToOne(optional = false, fetch = FetchType.LAZY)
	@JoinColumn(name="sm_scacudiente", referencedColumnName="sm_scpersona")
	private SmartPersona smartpersonaacudiente;	
	
	//bi-directional many-to-one association to SmartPersona
	@ManyToOne(optional = false, fetch = FetchType.LAZY)
	@JoinColumn(name="sm_scestudiante", referencedColumnName="sm_scpersona")
	private SmartPersona smartpersonaestudiante;	
	
	//bi-directional many-to-one association to SmartSedeGrados
	@ManyToOne(optional = false, fetch = FetchType.LAZY)
	@JoinColumn(name="sm_scsedesgrados", referencedColumnName="sm_scsedesgrados")
	private SmartSedeGrados smartsedegrados;

	public BigDecimal getSmscmatricula() {
		return smscmatricula;
	}

	public void setSmscmatricula(BigDecimal smscmatricula) {
		this.smscmatricula = smscmatricula;
	}

	public String getSmnmmatricula() {
		return smnmmatricula;
	}

	public void setSmnmmatricula(String smnmmatricula) {
		this.smnmmatricula = smnmmatricula;
	}

	public String getSmcofolio() {
		return smcofolio;
	}

	public void setSmcofolio(String smcofolio) {
		this.smcofolio = smcofolio;
	}

	public String getSmdsannolectivo() {
		return smdsannolectivo;
	}

	public void setSmdsannolectivo(String smdsannolectivo) {
		this.smdsannolectivo = smdsannolectivo;
	}

	public String getSmcousuario() {
		return smcousuario;
	}

	public void setSmcousuario(String smcousuario) {
		this.smcousuario = smcousuario;
	}

	public Date getSmfhingreso() {
		return smfhingreso;
	}

	public void setSmfhingreso(Date smfhingreso) {
		this.smfhingreso = smfhingreso;
	}

	public Date getSmfhmodificacion() {
		return smfhmodificacion;
	}

	public void setSmfhmodificacion(Date smfhmodificacion) {
		this.smfhmodificacion = smfhmodificacion;
	}

	public Date getSmfhretiro() {
		return smfhretiro;
	}

	public void setSmfhretiro(Date smfhretiro) {
		this.smfhretiro = smfhretiro;
	}

	public SmartDatosMaestro getSmartdatosmaestroestadomatricula() {
		return smartdatosmaestroestadomatricula;
	}

	public void setSmartdatosmaestroestadomatricula(
			SmartDatosMaestro smartdatosmaestroestadomatricula) {
		this.smartdatosmaestroestadomatricula = smartdatosmaestroestadomatricula;
	}

	public SmartPersona getSmartpersonamadre() {
		return smartpersonamadre;
	}

	public void setSmartpersonamadre(SmartPersona smartpersonamadre) {
		this.smartpersonamadre = smartpersonamadre;
	}

	public SmartPersona getSmartpersonapadre() {
		return smartpersonapadre;
	}

	public void setSmartpersonapadre(SmartPersona smartpersonapadre) {
		this.smartpersonapadre = smartpersonapadre;
	}

	public SmartPersona getSmartpersonaacudiente() {
		return smartpersonaacudiente;
	}

	public void setSmartpersonaacudiente(SmartPersona smartpersonaacudiente) {
		this.smartpersonaacudiente = smartpersonaacudiente;
	}

	public SmartPersona getSmartpersonaestudiante() {
		return smartpersonaestudiante;
	}

	public void setSmartpersonaestudiante(SmartPersona smartpersonaestudiante) {
		this.smartpersonaestudiante = smartpersonaestudiante;
	}

	public SmartSedeGrados getSmartsedegrados() {
		return smartsedegrados;
	}

	public void setSmartsedegrados(SmartSedeGrados smartsedegrados) {
		this.smartsedegrados = smartsedegrados;
	}	       
}
